﻿using System.Collections.Generic;

namespace RoMBot.Classes
{
    public enum TargetType
    {
        PT_NONE = 0,
        PT_PLAYER = 1,
        PT_MONSTER = 2,
        PT_NPC = 4,
        PT_NODE = 4,
    }

    public enum Races
    {
        RACE_HUMAN = 0,
        RACE_ELF = 1,
    }

    public enum Classes
    {
        CLASS_NONE = -1,
        CLASS_WARRIOR = 1,
        CLASS_SCOUT = 2,
        CLASS_ROGUE = 3,
        CLASS_MAGE = 4,
        CLASS_PRIEST = 5,
        CLASS_KNIGHT = 6,
        CLASS_WARDEN = 7,
        CLASS_DRUID = 8
    }

    public struct ArmorClassType
    {
        public string this[ int index ]
        {
            get
            {
                switch ( index )
                {
                    case 1:
                        return "chain";
                        break;
                    case 2:
                        return "leather";
                        break;
                    case 3:
                        return "leather";
                        break;
                    case 4:
                        return "cloth";
                        break;
                    case 5:
                        return "cloth";
                        break;
                    case 6:
                        return "chain";
                        break;
                    case 7:
                        return "chain";
                        break;
                    case 8:
                        return "cloth";
                        break;

                    default:
                        return "none";
                        break;
                }
            }
        }
    }

    public static class Definitions
    {
        public const int PT_NONE = 0;
        public const int PT_PLAYER = 1;
        public const int PT_MONSTER = 2;
        public const int PT_NPC = 4;
        public const int PT_NODE = 4;

        public const int RACE_HUMAN = 0;
        public const int RACE_ELF = 1;
        public const int RACE_DWARF = 2;

        public const int CLASS_NONE = -1;
        public const int CLASS_WARRIOR = 1;
        public const int CLASS_SCOUT = 2;
        public const int CLASS_ROGUE = 3;
        public const int CLASS_MAGE = 4;
        public const int CLASS_PRIEST = 5;
        public const int CLASS_KNIGHT = 6;
        public const int CLASS_WARDEN = 7;
        public const int CLASS_DRUID = 8;
        public const int CLASS_WARLOCK = 9;
        public const int CLASS_CHAMPION = 10;

        public static Dictionary<PawnClass, string> ClassEnergyMap = new Dictionary<PawnClass, string>{
                {PawnClass.None,"none"},
                {(PawnClass)0,"none"},
                { PawnClass.Warrior, "rage" },
                {PawnClass.Scout, "focus"},
                {PawnClass.Rogue, "energy"},
                {PawnClass.Mage,"mana"},
                {PawnClass.Priest,"mana"},
                {PawnClass.Knight,"mana"},
                {PawnClass.Warden, "mana"},
                {PawnClass.Druid, "mana"},
                {PawnClass.Warlock, "focus"},
                {PawnClass.Champion, "rage"}
        };


        public static Dictionary<int, string> ArmorClassType = new Dictionary<int, string>{
                {0,"none"},
                { 1, "chain" },
                {2, "leather"},
                {3, "leather"},
                {4,"cloth"},
                {5,"cloth"},
                {6,"chain"},
                {7, "chain"},
                {8, "cloth"}
        };

        //public static Dictionary<PawnClass, string> PawnClassName = new Dictionary<PawnClass, string>{
        //        {-1,"None"},
        //        { 1, "Warrior" },
        //        {2, "Scout"},
        //        {3, "Rogue"},
        //        {4,"Mage"},
        //        {5,"Priest"},
        //        {6,"Knight"},
        //        {7, "Warden"},
        //        {8, "Druid"}
        //};


    }
}
